Modern large data centers are structured to operate in a distributed operating environment, such as a cloud computing environment. This environment allows for dynamic access to a shared architecture of computing resources that can be rapidly deployed to handle user requests, such as cloud-based storage requests, vault services, data processing, and information retrieval. The efficiency of data centers may be enhanced through virtualization, wherein the physical computing resources (e.g., servers, processors, etc.) that actually handle requests are abstracted as one or more virtual entities. A prominent virtual entity is a virtual machine (VM), which is essentially a self-contained operating system comprising a software implementation of a processor.
In general, each VM may be configured to operate within its own partition on a data center physical host (i.e., server) essentially as its own independent computer. The physical hosts process and handle requests from the virtual machines. Efficient mapping of VMs to physical hosts requires knowing the resource requirements of the VMs and the capacity of the physical hosts.